import pygame
from pygame.sprite import Sprite


class Bullet(Sprite):
    """子弹管理"""

    def __init__(self, gameSetting, screen, ship):
        """在飞船所处的位置创建一个子弹对象"""
        super(Bullet, self).__init__()
        self.screen = screen

        # 在飞船的位置创建一个表示子弹的矩形
        self.rect = pygame.Rect(
            ship.rect.centerx,
            ship.rect.top,
            gameSetting.bullet_width,
            gameSetting.bullet_height)
        # 改变子弹的位置
        # self.rect.centerx = ship.rect.centerx
        # self.rect.top = ship.rect.top

        # 存储用小数表示的子弹位置
        self.y = float(self.rect.y)
        self.color = gameSetting.bullet_color
        self.speed_factor = gameSetting.bullet_speed_factor

    def update(self):
        """
        向上移动子弹,继承自Sprite
        """
        # 更新表示子弹位置的小数值
        self.y -= self.speed_factor

        # 更新表示子弹的rect的位置
        self.rect.y = self.y

    def drawBullet(self):
        """
        在指定位置绘制飞子弹
        """
        pygame.draw.rect(self.screen, self.color, self.rect)
